class Container {
    constructor(x) {
        this.$value = x
    }

    static of(x) {
        return new Container(x)
    }

    map(f) {
        return Container.of(f(this.$value))
    }
}

let x = Container.of(3);
console.dir(x);

let y = Container.of(x);
console.dir(y);

let z = x.map((x) => Number(x) + 1);
console.dir(z);
